//
//  MainTabBar.swift
//  Weibo
//
//  Created by 潇 on 15/12/13.
//  Copyright © 2015年 潇. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {

    //UIView 的默认的构造方法
    //重写父类的构造方法
    override init(frame: CGRect) {
        super.init(frame: frame)
        addSubview(composeBtn)
    }
    
    
    //通过 xib 或者 sb 创建,视图会调用这个方法
    //如果实现了 init(frame)意味当前这个类, 默认支持手码,不支持 sb,不会调用 init (decoder)
    //所以说创建 tabbar 调用了这个方法,就一定是 xib/sb 中创建的
    required init?(coder aDecoder: NSCoder) {
        
        //需要实现fatalError 方法才会解决报错
//        fatalError("init(coder:) has not been implemented")
        //当从 xib/sb 加载该空间  程序就会报错,这个时候需要调用下列方法,让 Maintabbar 即支持手码有支持 sb/xib
        super.init(coder: aDecoder)
        addSubview(composeBtn)
    }
    
    
    //在这个方法中设置所有的子视图
    override func layoutSubviews() {
        
        //需要调用 super layoutSubviews
        super.layoutSubviews()
        
        //设置中间的加号 frame
        let w = self.bounds.size.width / 5
        let h = self.bounds.size.height
        let rect = CGRect(x: 0, y: 0, width: w, height: h);
        
        //遍历所有子视图  修改大小'
        //定义索引系数
        var index: CGFloat = 0
        for subView in subviews {
            if subView.isKindOfClass(NSClassFromString("UITabBarButton")!) {
            
                //修改 frame 
                subView.frame = CGRectOffset(rect, index * w, 0)
                //累加 index
                index += index == 1 ? 2 : 1
            }
        }
        //设置加号按钮的位置,设置 Y 值可以使加号上下移动
        //让加号在线的上面 bringSubViewToFront(composeBtn)
        composeBtn.frame = CGRectOffset(rect, 2 * w, 0)
        
    }
    
    //懒加载 加号按钮
    lazy var composeBtn: UIButton = UIButton(imageName: "tabbar_compose_icon_add", backImageName: "tabbar_compose_button")
    
//    {
//    
//        let btn = UIButton()
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
//
//        //这里没有设置 btn 的 frame
//        //根据背景视图,自动设置大小
//        btn.sizeToFit()
//        return btn
//    }()
}
